import { reqUserLogin,reqUserLogout } from "@/api"

const state = {
  userInfo:{
    name:localStorage.getItem('name'),
    token:localStorage.getItem('token')
  }
}
const actions = {
  // 1.用户登录
  async userLogin({commit},user) {
    const res = await reqUserLogin(user)
    if (res.code === 200) {
      // console.log('login',res)
      commit('SAVE_USER_INFO', res.data)
      
      // 在本地存储当中也在先存储一份
      localStorage.setItem('name', res.data.name)
      localStorage.setItem('token',res.data.token)
    } else {
      // 登陆失败之后，要返回一个失败的Promise实例对象 以便于后续来使用
      // return Promise.reject(new Error(res.message))
      return Promise.reject(res.message)
    }
  },
   // 2. 用户登出
   async userLogout({commit}) {
    const res = await reqUserLogout()
    if (res.code === 200) {
      // 退出成功后，要清空本地存储的内容
      localStorage.removeItem('name')
      localStorage.removeItem('token')

      // 将vuex中的数据删除掉  不需要传递参数
      commit('REMOVE_USER_INFO')
    }
  }
}
const mutations ={
  SAVE_USER_INFO(state,payload){
    state.userInfo = payload
  },
  REMOVE_USER_INFO(state){
    state.userInfo={name:'',token:''}
  }
}
const getters = {

}
export default{
  namespaced:true,
  state,
  actions,
  mutations,
  getters
}